package com.itawei.d2_lambdademo2;

import java.util.Arrays;
import java.util.Comparator;

/**
 * lambda表达式 只能用在函数式接口(只有一个抽象方法需要重写) @FunctionalInterface
 * 1.可以简化匿名内部类的书写
 * 2.lambda表达式的完整格式
 * 3.lambda表达式的简写格式
 *         //小括号：数据类型可以省略 若参数只有一个，小括号也可以省略
 *         //大括号：如果方法体只有一行，return，分号，大括号也可以省略
 *
 */

public class LambdaSDemo {
    public static void main(String[] args) {
        String[] arr = {"c","ccccc","cc","cccc","ccc"};


        //2.lambda表达式的完整格式
//        Arrays.sort(arr, (String o1, String o2)-> {
//                    return o1.length() - o2.length();
//                }
//        );

        //3.lambda表达式的简写格式
        //小括号：数据类型可以省略 若参数只有一个，小括号也可以省略
        //大括号：如果方法体只有一行，return，分号，大括号也可以省略 但是return，分号，大括号要省略的话必须同时省略
        Arrays.sort(arr, (o1, o2)-> o1.length() - o2.length());


        Arrays.sort(arr, (String o1, String o2)-> {
                return o1.length() - o2.length();
            }
        );


        //打印数组
        System.out.println(Arrays.toString(arr));
    }
}
